package cn.gailvlun.gll.net.base;


import cn.gailvlun.gll.bean.PlaceHolder;
import cn.gailvlun.gll.net.token.Authorization;
import io.reactivex.Observable;
import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Query;



public interface BaseService {

    
    @POST("refresh_token/")
    Observable<RefreshTokenRes> refreshToken(@Body RefreshTokenReq refreshTokenReq);

    @POST("refresh_token/")
    Call<RefreshTokenRes> refreshTokenSync(@Body RefreshTokenReq refreshTokenReq);

    
    @Authorization
    @POST("deviceinfo/")
    Observable<PlaceHolder> uploadDeviceInfo(@Body UploadInfoReq uploadInfoReq);

    @Authorization
    @POST("gen_oss_token/")
    Call<OssTokenRes> getOssToken();

    @Authorization
    @GET("is_friend/")
    Observable<IsFriendRes> isFriend(@Query("userid") int userId);

    @Authorization
    @POST("logout/")
    Observable<PlaceHolder> logout();
}
